草庐IT

javac : invalid target release: 1. 8

全部标签

java - maven 正在使用 java 1.7 编译代码,但我希望它使用 1.8 进行编译

我正在使用Maven并想使用JDK1.8编译我的代码。所以我安装了JDK1.8然后(这是在Windows上)设置“路径”变量和“JAVA_HOME”PATH=C:\construction\tools\ibm_sdk80\bin;C:\construction\tools\apache-maven-3.2.5\bin;Java主页:C:\Users\satish.marathe>setJAVA_HOMEJAVA_HOME=C:\construction\tools\ibm_sdk80java版本给我:C:\Users\satish.marathe>java-versionjavaver

java - 带有 maven-antrun-plugin 的 Maven Ant BuildException ...无法找到 javac 编译器

我正在尝试让Maven为一些遗留代码调用ANT构建。ant构建通过ant正确构建。但是,当我使用mavenant插件调用它时,它失败并出现以下错误:[ERROR]Failedtoexecutegoalorg.apache.maven.plugins:maven-antrun-plugin:1.6:run(default)onprojectCoreServices:AnAntBuildExceptionhasoccured:Thefollowingerroroccurredwhileexecutingthisline:[ERROR]C:\dev\projects\build\build.

java - 为什么在 Java 1.8 中使用 Function<V,R> 而不是 Function<R,V>?

这个顺序看起来很奇怪,因为在常规Java中,返回类型总是首先指定。如:publicstaticdoublesum(Iterablenums){...}那么,为什么在Function和BiFunction类中选择以相反的方式指定它们呢?如:interfaceFunctioninterfaceBiFunction我不是在这里征求关于哪个更好的意见,但具体来说:a)优先选择一个顺序是否有任何技术或其他(非风格)好处?还是随意选择?b)是否有人知道任何书面解释,或来自权威来源的任何陈述原因,为什么选择一个而不是另一个?旁白:如果扩展到更高层次,这个顺序似乎更加奇怪。例如,一个假设的QuadFu

java - JNLP 不在 Java 1.8 客户端上创建桌面快捷方式

我有一个JNLP,它在Java1.7下为我的应用程序创建桌面快捷方式。但是,当我在Java1.8下运行它时,我不再获得桌面快捷方式。发生了什么变化?这是我在WindowsXP、Windows7和OSXYosemite下测试的一个示例,它们都运行Java1.7,它为这三个系统创建了桌面快捷方式,但在运行Java1.8的Windows7和Windows8上我没有获取桌面快捷方式。需要说明的是,该应用程序显示并运行良好,只是未创建桌面快捷方式。testtest.comTest 最佳答案 OP的解决方案:在Java1.7中,没有os属性的标

java - 为什么 javac 不优化空的 try-finally block ?

我写了一个类classtest1{voidfoo(){}}还有一个有很多try和finally语句什么都不做的类:classtest2{voidfoo(){try{}finally{}try{}finally{}try{}finally{}try{}finally{}try{}finally{}}}使用javac(sun-jdk-1.6.0.37,linux-3.8.13-amd64)编译它们并与od比较文件。test1.class000000006614307154102016306256407216302006100517307301200000200645570201440675

java - 如果 javac 是用 Java 编写的,为什么我可以执行 javac 就好像它是一个非 java 程序一样?

这个问题在这里已经有了答案:WhyJavacompilerasdistributedasexecutableandnotasJVMbytecode?(1个回答)关闭7年前。Java程序需要打包成JAR文件才能使用java-jar命令执行。那么,为什么我不必使用java-jarjavac命令执行javac呢?Sun/Oracle是如何把java程序变成可执行的二进制文件的?我知道有一些工具可以将jar文件转换为windows可执行文件。但我希望我的jars可以在Linux/OSX中执行,而无需bash脚本的帮助。------------更新我发现此链接非常有用:https://githu

java - java 1.8 上的 maven-enunciate-plugin 作为 apt 现在已从最新的 JDK(即 java 注释处理工具)中删除

问题是如何让java1.8和maven-enunciate-plugin协同工作?使用Maven插件org.codehaus.enunciateversion1.29和OSXJDK1.7.0_25一切都很好。Enunciate依赖于apt,我在1.7.0_25中看到了这个运行时警告[INFO]invokingenunciate:generatestep...warning:TheapttoolanditsassociatedAPIareplannedtoberemovedinthenextmajorJDKrelease.Thesefeatureshavebeensupersededby

java - 为什么在静态上下文中使用实例方法时 javac 会发出 "error: method in class cannot be applied to given types"?

考虑以下(无效的)Java程序:publicclassTest{publicstaticvoidmain(String[]args){int[]ints={1,2,3,4,5};print(ints);}publicvoidprint(int...ints){for(inti:ints){System.out.print(i);}}}我希望出现与此类似的错误:Cannotmakeastaticreferencetothenon-staticmethodprint(int[])fromthetypeTestatTest.main(Test.java:5)相反,javac发出:Test.j

java - 使用 jOOQ 3.6+、纯 SQL 和 javac 编译器进行缓慢编译

这个问题在这里已经有了答案:Troubleshootslowcompilation(3个答案)关闭7年前。以下错误已报告给jOOQusergroup.这似乎确实是javac编译器中的一个错误,与编译器在使用内部DSL(如jOOQ)的上下文中完成的相当“复杂”的类型推断工作有关。是。鉴于该错误的一般性质,我将其记录在StackOverflow上,以供其他人在遇到它时帮助应用解决方法。在高层次上,这似乎是由于JEP101:GeneralizedTarget-TypeInference而导致的编译器性能回归。,它是在Java8中引入的,过去曾引起1-2个问题。使用Maven和jOOQ3.7在

java - IntelliJ IDEA - 导入 Eclipse 项目时出现 "Imported project refers to unknown jdks JavaSE-1.8"

我试图将Eclipse项目导入到IntelliJIDEA中,但我遇到了这个错误: 最佳答案 eclipse项目描述包含对“手动”定义的JDK(名为JavaSE-1.8)的引用。只需继续并自己在IntelliJ中为您的项目定义一个SDK。参见here必要的步骤:TodefineaJDKandamobileSDKinIntelliJIDEAOpentheProjectStructuredialog(e.g.Ctrl+Shift+Alt+S).Intheleftmostpane,underPlatformSettings,clickSDK